<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>07.原型</title>
</head>
<body>
    <script>
        /*
        1. 任何【构造】函数都有一个prototype属性
        2. prototype属性是一个对象
        3. prototype对象可以挂载任意的属性和函数
        4. prototype 上的属性和函数 可以被该构造创建的对象直接使用


        prototype  理解成为java中的satic  共享的

        为何是共享的： 
            一个构造可以创建多个对象
            多个对象只被一个构造而维护
            prototype 针对于构造上的  即为 多个对象可以共享一个 prototype属性

        prototype 的使用：
           1. 构造中 属性添加在内部  函数写在原型上
           2. js中存在继承的  所有的对象都会继承Object
        
        */

        function Student(id,name) {
           // console.dir(this);
            this.id = id
            this.name = name
           // this.say = say
           
        }

        Student.prototype.say = function() {
            console.log(this.name+"在说话。。。");
        }

        // function say() {
        //     console.log(this.name+"在说话。。。");
        // }
  
        var stu01 = new Student(1001,"小明");
        var stu02 = new Student(1001,"小红");
        console.log(stu01);
        console.log(stu02);
        stu01.say()
        stu02.say()
      
      
        // console.log(stu01.id === stu02.id);
        console.log(stu01.say === stu02.say);

        console.log(stu02.toString());
        console.log(stu02.toLocaleString());
        



    //    function Student() {

    //    }

    //    Student.prototype.say = function() {
    //     console.log("在说话。。。。。");

    //    }

    //    var stu = new Student();
    //    stu.say()


      


    </script>
    
</body>
</html>